陣列是能夠存放多個相同型態資料的一種物件。
透過陣列的索引(index)並搭配迴圈敘述,可以輕鬆地存取裡面的元素(element),
而不必替所有資料宣告不同的變數。
它具有 get() 和 set() 函數,這些函數通過運算符重載約定變成 [] 和 size 屬性,以及其他有用的成員函數:
與JAVA不同之處
Kotlin的集合體系拋棄了Java集合體系中的Queue 集合,但增加了可變集合和不可變集合。
class Array<T> private constructor() {
val size: Int
operator fun get(index: Int): T
operator fun set(index: Int, value: T): Unit
operator fun iterator(): Iterator<T>
// ...
}
要創建一個陣列,請使用函數 arrayOf() 並將項目值傳遞給它,
以便 arrayOf(1, 2, 3) 創建一個陣列 [1, 2, 3]。或者,arrayOfNulls() 函數可用於創建一個給定大小的陣列,其中填充了空元素。 另一種選擇是使用 Array 構造函數,該構造函數採用陣列大小和返回給定索引的陣列元素值的函數:
// Creates an Array<String> with values ["0", "1", "4", "9", "16"]
val asc = Array(5) { i -> (i * i).toString() }
asc.forEach { println(it) }
[] 操作代表對成員函數 get() 和 set() 的調用。 Kotlin 中的陣列是不變的。這意味著 Kotlin 不允許我們將 Array 分配給 Array,這可以防止可能的運行時失敗(但您可以使用 Array,請參閱類型投影)。
Kotlin 還具有表示基本類型陣列而無需裝箱開銷的類:ByteArray、ShortArray、IntArray 等。這些類與 Array 類沒有繼承關係,但它們具有相同的方法和屬性集。它們中的每一個也都有對應的工廠函數:
val x: IntArray = intArrayOf(1, 2, 3)
x[0] = x[1] + x[2]